import request from '../../../utils/request'

// pages/hetong/hetonglist/hetonglist.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    contractList: [], // 合同列表
    loading: false,   // 加载状态
    wxUserId: null    // 全局用户ID
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取全局用户ID
    const app = getApp();
    const wxUserId = app.globalData.userId || wx.getStorageSync('userId');
    
    if (!wxUserId) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    
    this.setData({ wxUserId: wxUserId });
    // 加载合同列表
    this.loadContracts();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    if (this.data.wxUserId) {
      this.loadContracts();
    }
  },

  /**
   * 加载合同列表
   */
  loadContracts() {
    const that = this;
    const wxUserId = this.data.wxUserId;
    
    console.log('当前用户ID:', wxUserId);
    
    this.setData({ loading: true });
    wx.showLoading({ title: '加载中...' });
    
    const url = `/le/contract/myContracts?wxUserId=${wxUserId}`;
    console.log('请求URL:', url);
    
    request({
      url: url,
      method: 'GET',
      success: (res) => {
        console.log('合同列表返回：', res);
        wx.hideLoading();
        
        if (res.statusCode === 200 && res.data.code === 200) {
          // 格式化数据
          const list = that.formatContracts(res.data.data || []);
          
          that.setData({
            contractList: list,
            loading: false
          });
        } else {
          that.setData({ loading: false });
          wx.showToast({
            title: res.data.msg || '加载失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('加载合同失败：', err);
        wx.hideLoading();
        that.setData({ loading: false });
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 格式化合同数据
   */
  formatContracts(contracts) {
    return contracts.map(item => {
      // 格式化日期
      const signDate = item.signTime ? this.formatDate(new Date(item.signTime)) : '';
      const startDate = item.startDate ? this.formatDate(new Date(item.startDate)) : '';
      const endDate = item.endDate ? this.formatDate(new Date(item.endDate)) : '';
      const terminationTime = item.terminationTime ? this.formatDateTime(new Date(item.terminationTime)) : '';
      
      return {
        id: item.id,
        contractNo: item.contractNo || '',
        contractName: item.contractName || '',
        elderlyName: item.elderlyName || '',
        signDate: signDate,
        validPeriod: startDate && endDate ? `${startDate}~${endDate}` : '',
        contractStatus: item.contractStatus || '',
        terminationTime: terminationTime,
        contractFile: item.contractFile || '',
        statusClass: this.getStatusClass(item.contractStatus)
      };
    });
  },

  /**
   * 格式化日期 (yyyy.MM.dd)
   */
  formatDate(date) {
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    return `${year}.${month}.${day}`;
  },

  /**
   * 格式化日期时间 (yyyy.MM.dd HH:mm:ss)
   */
  formatDateTime(date) {
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const hour = String(date.getHours()).padStart(2, '0');
    const minute = String(date.getMinutes()).padStart(2, '0');
    const second = String(date.getSeconds()).padStart(2, '0');
    return `${year}.${month}.${day} ${hour}:${minute}:${second}`;
  },

  /**
   * 获取状态样式类名
   */
  getStatusClass(status) {
    const statusMap = {
      '未生效': 'status-inactive',
      '生效中': 'status-active',
      '已过期': 'status-expired',
      '已失效': 'status-terminated'
    };
    return statusMap[status] || '';
  },

  /**
   * 查看合同详情
   */
  chakan(e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/hetong/hetongxq/hetongxq?id=${id}`,
    });
  },

  /**
   * 下载合同
   */
  download(e) {
    const contractFile = e.currentTarget.dataset.file;
    if (!contractFile) {
      wx.showToast({
        title: '暂无合同文件',
        icon: 'none'
      });
      return;
    }
    
    wx.showToast({
      title: '下载功能开发中',
      icon: 'none'
    });
    // TODO: 实现文件下载功能
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    this.loadContracts();
    setTimeout(() => {
      wx.stopPullDownRefresh();
    }, 1000);
  }
})